home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
t_os
/
speak
/
src
/
menu.bas
< prev
next >
Wrap
BASIC Source File
|
1993-07-08
|
3KB
|
56 lines
10000 ' BASIC COMPILER EXP MENU
10010 ' PROGRAMMED BY Marick. 1993/01/20 FOR FTOPPARA's BASIC PROGRAM
10020 ' SYSTEM VERSION 1.0
10030 DIM A$(10),X(10),Y(10)
10040 SCREEN @0:PALETTE @:CLS:PALETTE 7,[192,192,192]:PALETTE 8,[64,64,64]
10050 PALETTE 15,[255,255,255]:PALETTE 1,[255,32,32]:PALETTE 2,[128,128,255]
10060 PALETTE 3,[255,255,64]
10070 LINE(0,0)-(639,479),PSET,%2,BF
10080 SYMBOL(100,20)," おしゃべり人工無能!",2,2,%3,,,7
10090 SYMBOL(164,442)," 実行するイベントをクリックしてください",1,1,7,,,1
10100 SYMBOL( 80,462)," 「お気楽♪BASIC」 '93年2月号 掲載リスト より",1,1,1,,,1
10110 PUSH=-1:BUTTON=-1:I=0:SY=40:WY=32:Y1=80:X1=160:WX=16*20:MSTR=20
10120 READ A$(I):IF A$(I)="*" THEN N_MAX=I:GOTO 10150
10130 IF LEN(A$(I))<MSTR THEN A$(I)=SPACE$((MSTR-LEN(A$(I)))\2)+A$(I):A$(I)=A$(I)+SPACE$(MSTR-LEN(A$(I)))
10140 A$=A$(I):X=X1:Y=SY*I+Y1:X(I)=X:Y(I)=Y:GOSUB *BUTTON_OFF:I=I+1:GOTO 10120
10150 MOUSE 0:MOUSE 1,,,1:I=-1
10160 WHILE BUTTON<0
10170 GOSUB *POS_CHK:IF MOUSE(2,0)<>-1 THEN 10210
10180 IF PUSH>=0 AND PUSH<>I THEN A$=A$(PUSH):X=X(PUSH):Y=Y(PUSH):GOSUB *BUTTON_OFF:PUSH=-1
10190 IF I>=0 AND PUSH<>I THEN PUSH=I:A$=A$(I):X=X(I):Y=Y(I):GOSUB *BUTTON_ON
10200 GOTO 10230
10210 IF PUSH>=0 THEN A$=A$(PUSH):X=X(PUSH):Y=Y(PUSH):GOSUB *BUTTON_OFF
10220 IF PUSH=I THEN BUTTON=I ELSE PUSH=-1
10230 WEND
10240 GOTO 10450
10250 *POS_CHK
10260 N=0:I=-1:X=MOUSE(0):Y=MOUSE(1)
10270 IF N<N_MAX THEN IF X>X1 AND X<X1+WX AND Y>Y1+N*SY AND Y<Y1+N*SY+WY THEN I=N ELSE N=N+1:GOTO 10270
10280 RETURN
10290 *BUTTON_OFF
10300 W=LEN(A$)*16:LINE(X,Y)-(X+W,Y+32),PSET,%7,BF
10310 SYMBOL(X,Y),A$,2,2,1,,,1
10320 LINE(X-2,Y+32+1)-(X-1,Y-2),PSET,%15,B
10330 LINE(X-2,Y-2)-(X+W+2,Y-1),PSET,%15,B
10340 LINE(X-2,Y+32+2)-(X+W+2,Y+32+1),PSET,%8,B
10350 LINE(X+W+1,Y-2)-(X+W+2,Y+32+2),PSET,%8,B
10360 RETURN
10370 *BUTTON_ON
10380 W=LEN(A$)*16:LINE(X,Y)-(X+W,Y+32),PSET,%7,BF
10390 SYMBOL(X,Y+2),A$,2,2,1,,,1
10400 LINE(X-2,Y+32+2)-(X+W+2,Y+32+1),PSET,%15,B
10410 LINE(X+W+1,Y-2)-(X+W+2,Y+32+2),PSET,%15,B
10420 LINE(X-2,Y+32+1)-(X-1,Y-2),PSET,%8,B
10430 LINE(X-2,Y-2)-(X+W+2,Y-1),PSET,%8,B
10440 RETURN
10450 MOUSE 5:PALETTE:ON I+1 GOTO 10470,10480,10490,10500,10510:'プログラムをふやす場合はここを修正
10460 'ファイルディスクリプタに変数が使えないため、展開する(Compiler)
10470 CHAIN "REC.BAS"
10480 CHAIN "AIDIC.BAS"
10490 CHAIN "SPEAK.BAS"
10500 CHAIN "MUNO.BAS"
10510 CHAIN "SPEAK2.BAS"
10520 ' タイトルデータ,・,・,・・・,*
10530 ' 最後に*のデータを必要とする(終了識別)
10540 DATA "音声データ登録","AI基本データ作成","おしゃべり小僧","人工無能!","おしゃべり人工無能!",*